package com.team9.fitness.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 用户头像实体
 * 
 * 存储用户的头像信息：
 * - 头像文件信息：URL、文件名、大小、类型
 * - 状态信息：是否激活
 * - 时间信息：上传时间、创建时间、更新时间
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class UserAvatar {

    private Long id;

    private Long userId;

    /**
     * 头像URL
     */
    private String avatarUrl;

    /**
     * 文件名
     */
    private String fileName;

    /**
     * 文件大小(字节)
     */
    private Long fileSize;

    /**
     * MIME类型
     */
    private String mimeType;

    /**
     * 上传时间
     */
    private LocalDateTime uploadTime;

    /**
     * 是否激活
     */
    private Boolean isActive;

    private LocalDateTime createdAt;

    private LocalDateTime updatedAt;

    public void setCreatedAtIfNull() {
        if (createdAt == null) {
            createdAt = LocalDateTime.now();
        }
    }

    public void setUpdatedAtIfNull() {
        updatedAt = LocalDateTime.now();
    }
}
